Content delivery system and method

ABSTRACT

A method and system for delivering content to a plurality of devices is provided. In one embodiment, the method may be for delivering content elements of one or more presentations to a device configured to communicate via a wireless data network, wherein the content elements include static content elements, dynamic content elements, and on-demand content elements. The method may comprise delivering to the device, data, such as compilation data, of the content elements included in the one or more presentations; delivering the static content elements to the device via the wireless data network during one or more time periods of increased available wireless data network capacity; delivering the dynamic content elements to the device via the wireless data network substantially according to a schedule; and delivering the on-demand content elements to the device via the wireless data network substantially immediately after a user request for an on-demand content element.

REFERENCE TO PRIORITY PATENT APPLICATIONS

The present application is a continuation patent application of Ser. No.13/929,481, filed on Jun. 27, 2013, which published as US 2014/0006556on Jan. 1, 2014; which is a continuation patent application of Ser. No.11/691,952, filed on Mar. 27, 2007, which is patented as U.S. Pat. No.8,498,628, issued Jul. 30, 2013 and published as US 2008/0242280A1 onOct. 2, 2008, each of which are hereby incorporated by reference hereinin their entirety.

FIELD OF THE INVENTION

The present invention generally relates to methods and systems forproviding customized content to a presentation device, and moreparticularly for delivering customized programming content to aprogrammable presentation device, such as a mobile telephone.

BACKGROUND OF THE INVENTION

Advances in processor, memory, network and telecommunicationtechnologies, have led to a proliferation of media services. In additionto the traditional over-the-air broadcasting of radio and televisionsignals, audio and video content (collectively “media content”) also arebeing delivered over cable, twisted pair, satellite, wireless, opticalfiber, and via other mediums. Media content is available for thetelevision, personal computer, mobile telephone, portable audio playersand other devices using various protocols, such as digital audio accessprotocol, real data transport, DVB-IPI (open standard), variable audiodistribution and interface system (VADIS), Windows Media Video® (MSV),Windows Media Audio® (MSA), and advanced systems format (ASF). On-demandvideo content (meant to include video content that also includes audiocontent) is available over cable, fiber, and via the internet. Streamingaudio and video content is available via the internet. Video and audiorecording devices allow content to be experienced immediately or at sometime after delivery.

As a result of these technological advances, consumers have many moreoptions for accessing and experiencing media content. Telecommunicationcarriers and mobile virtual network operators are beginning to offerrevenue-generating, value-added content services, such as streamingaudio and video and downloadable audio and video. For example, stockmarket information is available as real-time streaming content. Audioand video podcasts are available for download and playback.

These technological advances have been accompanied by increased consumerdemand for these new forms of media delivery. Wireless carriers seepotential profits for these new services. One of the challenges,however, for delivering media content wirelessly, is in providingsufficient network capacity to meet the consumer demands. While 3Gtechnology, for example, may dramatically increase data rates availableto an individual wireless user, such technology only modestly increasesspectrum utilization efficiency. Accordingly, there is a need for anefficient system of delivering value-added media content to consumers.

With regard to the wireless telecommunications networks, networkcapacity can be increased by adding equipment to cell sites ifsufficient unused spectrum is available or by building new cell sites.Another solution, as offered by this invention, is to make efficient useof network resources to deliver value-added consumer media services.

To date, terrestrial radio, television, digital radio, and other mediaservices typically are not customized. Similarly, podcasts are notcustomized. As an example, in prior art media services a user typicallytunes to a predefined channel and experiences a fixed media contentprogrammed for a prescribed demographic audience. For example, all userswho watch the same television channel experience the same programming. Asolution of this invention is to provide individually customized contentshaped by the user.

In addition, in broadcast media advertisers receive little or no directinformation from users to improve their response rate or to tailor theiradvertising. In other words, advertisers often must estimate theeffectiveness of advertisements for broadcast media. Thus, there is aneed to provide more interactivity between users, advertisers, and theservice provider, which may be provided by various embodiments of thepresent invention.

In addition, many other methods of delivering media content do notfacilitate social networking or allow users to share content with eachother. Further, in systems that do permit sharing, there often is adifficulty in managing digital rights of content providers.

These and other challenges of prior systems may be addressed by variousembodiments of the present invention.

SUMMARY OF THE INVENTION

The present invention provides a method and system for deliveringcontent to a plurality of user devices. In one embodiment, the methodmay be for delivering content elements of one or more presentations to adevice configured to communicate via a wireless data network, whereinthe content elements include static content elements, dynamic contentelements, and on-demand content elements. The method may comprisedelivering to the device, data, such as compilation data, of the contentelements included in the one or more presentations; delivering thestatic content elements to the device via the wireless data networkduring one or more time periods of increased available wireless datanetwork capacity; delivering the dynamic content elements to the devicevia the wireless data network substantially according to a schedule; anddelivering the on-demand content elements to the device via the wirelessdata network substantially immediately after a user request for anon-demand content element. In addition, the method may comprisedetermining that the device is accessible via a communication link, suchas a wireless local area network, that does not include the wirelessdata network and delivering one or more content elements to the devicevia the communication link. Further, the method may comprise determiningthat the device is communicatively coupled to an internet access deviceand delivering one or more content elements to the device via theinternet access device. The invention will be better understood byreference to the following detailed description taken in conjunctionwith the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is further described in the detailed description thatfollows, by reference to the noted drawings by way of non-limitingillustrative embodiments of the invention, in which like referencenumerals represent similar parts throughout the drawings. As should beunderstood, however, the invention is not limited to the precisearrangements and instrumentalities shown. In the drawings:

FIG. 1 is a block diagram of an example network environment for hostinga media content delivery system;

FIG. 2 is a flow chart of an example embodiment of a process forgenerating a user profile for a media content delivery system;

FIG. 3 is a flow chart of an example embodiment of a process forupdating a user profile for a media content delivery system;

FIGS. 4A and 4B are diagrams of exemplary user displays for interactingwith a media content delivery system;

FIG. 5 is a block diagram of a media content delivery system inaccordance with an example embodiment of the present invention;

FIG. 6 is a detailed block diagram of a media content delivery system inaccordance with an example embodiment of the present invention;

FIG. 7 is a flow chart of processes for a client module in accordancewith an example embodiment of the present invention;

FIG. 8 is a flow chart of processes for an application server inaccordance with an example embodiment of the present invention; and

FIG. 9 is a graphical representation of a delivery scheme of a deliverysystem in accordance with an example embodiment of the presentinvention.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

In the following description, for purposes of explanation and notlimitation, specific details are set forth, such as particular networks,communication systems, wireless networks, mobile telephones, servers,computers, terminals, devices, components, techniques, data and networkprotocols, software products and systems, enterprise applications,operating systems, development interfaces, hardware, etc. in order toprovide a thorough understanding of the present invention.

However, it will be apparent to one skilled in the art that the presentinvention may be practiced in other embodiments that depart from thesespecific details. Detailed descriptions of well-known networks,communication systems, wireless networks, mobile telephones, servers,computers, terminals, devices, components, techniques, data and networkprotocols, software products and systems, operating systems, developmentinterfaces, and hardware are omitted so as not to obscure thedescription of the present invention.

Overview

According to various embodiments of the invention, methods and systemsare described for providing customized media content (also referred toherein as “content”) to a user. A user may subscribe to a contentservice which offers customized content accessible via a user device,such as a mobile telephone, personal digital assistant (PDA), a portablecommunication device, personal computer, a portable media player, a caraudio/video system, a home audio or theater center, a device having thecapability of accessing the interne, a multifunction device, or anotheraudio device or video device. In various embodiments, audio content,video content, image content, textual content, or any combination ofthese forms of media content are delivered. For ease of discussion,unless otherwise specified “content” refers collectively or individuallyto any type of media content, such as, for example, music, song, image,video, weather, talk, advertisement, promo, liner, talk-up, etc. Forease of discussion, unless otherwise specified “content element” refersto an individual song or segment. Similarly, the word “song” is meant tohave its ordinary meaning and include music and the term “segment” ismeant to refer to non-music content such as, for example, image,weather, talk, advertisement, promo, liner, talk-up, and others. Theterm “content element” is meant to refer to an individual piece ofcontent (an individual song or segment). In some discussions, the termnon-segment may be used to refer to songs or audio-video contentelements. While the embodiments described herein are described in thecontext of system that selects, customizes, and delivers content that isaudio-centric, the invention is equally applicable for selecting,customizing, and seamlessly delivering content that is video-centric(i.e., television programming (TV shows, music videos), movies, news,talk, weather, etc.). In most instances, the term “videoprogramming”—meant to refer to movies and television programming—may beused instead of “song” throughout the description below to provide adescription of a video-centric customized content delivery system.

The content service may provide a media experience that is personalizedwith music, information (news, traffic, weather, events), talk,advertising, promotions and personal style (upbeat, laid back, etc.)selected for each individual user based on that user's demographics anduser profile, which may be user-specified preferences as well asdetermined from analysis of user behavior and explicit user feedback.The system may provide a seamless presentation of content (i.e., providea radio (or television) like experience as the sequence of contentelements are presented) and also may be interactive, allowing the userto modify the programming on-demand, such as choosing to pause, replay,or skip current content to immediately access or substitute otherprogramming. In addition, the user's content may be localized withtraffic, weather, local news, events and commentary tailored to theuser's location to enhance the content's relevance to the user and tocreate the sense of local community that traditional broadcast radio,for example, delivers. In addition or alternately, the user's contentmay be localized to a particular location identified by the user suchas, for example, weather, local news, events and commentary tailored tothe location(s) supplied by the user (e.g., the user's home town,college town, parent's town and/or other area) to enhance the content'srelevance to the user.

In an example embodiment, a user subscribes to one or more programs. Aprogram may be analogous to a media channel, such as a radio station ortelevision channel (although in contrast to such a channel it may becustomized via methods of the present invention). Thus, a programincludes selections of content elements and may include content elementsthat are unrelated or related, such as songs of a specific genre (e.g.,jazz, pop, rock), specific artist, selected by a particular entity,and/or other grouping or relation. The selection of content for eachprogram may be determined by, and based on, a template, with eachprogram having a different associated template. At a server, a templateis used to create compilation data (comprised of one or more data files)that is transmitted to the user device. The compilation data includescontent lists, pointers to media files, and other information necessaryfor the user device to create a seamless presentation for playback tothe user. Depending on the embodiment, the necessary media content(songs, talk, advertising, jingles, promotions, etc.) is transmitted tothe user device either upon a request from the user device or byinitiation of the server. The user device (or server, depending on theembodiment) keeps track of the content that is needed to be transmittedin order to reduce the resources (e.g., network resources, mobile phoneminutes, battery life, etc.) needed to transmit the content to the user.In other words, some content identified in the compilation data may notbe transmitted to the user device because it is already present on theuser device. The user device uses the compilation data to determine thecontent elements, content sequence, and other parameters forpresentation of the program to the user. Because a user may subscribe tomultiple programs, multiple compilation data files may be constructedand transmitted to the user device (as well as the necessary contentelements).

The compilation data for a program may be updated periodically, such asnightly, or in response to modifications to a user's profile, which mayresult from implicit or explicit user feedback, to allow the user toreceive new content based on a modified (or new) template. In addition,some content may be updated throughout the day, or during the listeningor viewing experience. For example, traffic, news, weather, and othersuch content may be updated upon receiving a user request for thecontent or in anticipation of playing that content to the user. Morespecifically, if the user elects to hear the weather, news or trafficsegments each half hour, new content for those segments may betransmitted to the user device each half hour (e.g., if the content forthe segment has changed), a few minutes before the scheduledpresentation time. While much of the content may have been downloaded inadvance and stored on the user device (i.e., not be “live”), othercontent may be streamed for real-time (or near real-time) presentationto the user (i.e., be presented as substantially live content).

The user's interaction with the user device for a program may be storedin the device. For example, the user may skip content (e.g., skip to thenext content element), rate content (i.e., indicate his or her dislikeor like of a particular song, artist, etc.) and provide other input tothe user device. The stored data (i.e., a log) of the interaction maythen be transmitted to the server and used as explicit and implicitfeedback to modify the templates corresponding to that user for futureconstruction of programs.

In one embodiment the service may be delivered over a wireless datanetwork, such as, for example, a mobile (e.g., cellular) telephonenetwork, a wireless Wide Area Network (WWAN), or other wireless datanetwork. Mobile telephone networks, as used herein, is meant to include(without being limited to) analog and digital cellular telephonenetworks, including, but not limited to AMPS, 1G, 2G, 3G, GSM (GlobalSystem for Mobile communications), PCS (Personal Communication Services)(sometimes referred to as digital cellular networks), 1x Evolution-DataOptimized (EVDO), and other cellular telephone cell networks. In otherembodiments, the service may be provided via the internet, or acombination of a wireless network and the internet. Thus, the user mayexperience the content from his her mobile telephone (or other handhelddevice), automobile media system, laptop, or other portable device orfrom his or her desktop computer, home theater system, home audiosystem, or other fixed or semi-fixed presentation system/device.

Some embodiments of this invention include the efficient use of thedelivery network's resources, an ability to provide high quality audioand/or video, less battery drainage, and glitch-free program playbackeven during intermittent or complete loss of network connectivity.Specifically, in some embodiments the bulk of the transmission ofcontent to the user device occurs during off-peak hours, such as whenthe user device is charging, or via low cost (including free) wired orwireless networks or when the user device is communicatively coupled toan internet access device such as the user's computer. For example, theuser device may be configured to request and receive content uponestablishing a communication link to the internet via a wireless Localarea network (WLAN) (e.g., a free WiFi network (an IEEE 802.11compatible network such as an IEEE 802.11 a,b,g,n, or other such IEEE802.11 standard) or WiMAX network (IEEE 802.16) or a wireless personalarea network (wireless PAN). In addition, some embodiments may have theability to control the timing of delivery on a device by device basis,based on the location of each device, location of other devices, networkcapacity, level of service (e.g., to the user), and/or other factors.Because the content is being communicated via low cost resources inthese instances, high quality content (which typically comprises moredata than low quality content) may be provided.

More specifically, the service may consume a small portion of thepeak-hour wireless network capacity that a pure streaming serviceconsumes. Thus, widespread use need not (1) necessitate wireless carrierinvestment in more capacity, (2) result in associated network planningproblems, or (3) be prohibitively expensive to the subscribers.Embodiments of the system may deliver much higher bit-rates, andtherefore higher quality audio (even DVD Audio) and/or video, than otherdigital audio or video services without burdening the network. The bitrate and therefore quality need not be limited by the bandwidthavailable to a user at the moment of playback. Most presentation ofcontent, particularly of audio and video, does not require an activeconnection to a network, so the service may be largely impervious to theinevitable connectivity drop-outs that occur when a mobile device ismoving at high-speeds (e.g., in an automobile), is being handed-offbetween cells, or is in use during peak-hour operation. In someembodiments, much communication occurs while the user device is pluggedinto an electrical power source (e.g., charging), so there is minimalbattery drain from wireless transmission. As a result, the portable userdevice can be used to play media content for extended periods of timeeven where there is no network coverage, whether in rural areas, intunnels, deep inside buildings, on airplanes, etc.

In some embodiments, the user may buy or elect to hear more informationrelated to an advertisement or promotion. This interaction is recordedand may be provided to the advertiser immediately, or at a later time.Consequently, in some embodiments advertisers may have increasedinteractions with users. For example, a user may select to hear moreinformation about a product, service or promotion being advertised byproviding a user input to the user device. Receiving this information,the advertiser can determine what advertising is more effective to whatindividuals or groups and adjust the advertising campaign accordingly.In some embodiment user program preferences can be shared with otherusers in a manner where digital rights are maintained thereby building asocial network among subscribers and fostering loyalty to the service.

Thus, as an overview, depending on the embodiment and implementation,the present invention may provide an automated personalized program ofdiscrete content elements by one or more of (a) receiving and processing(manually or automatically) content and associated metadata from contentpublishers (e.g., radio stations may upload content); (b) incorporatingmarket data from third party sources into content selection and programcreation (e.g., media popularity and descriptive data); (c)incorporating observed implied public data relationships between contentinto content selection and program creation—(e.g., people who likeartist A (or song A) usually also like artist B (song B)—artistcorrelation); (d) using initial user preferences for initial contentselection and program creation, including user preferences,demographics, interests, zipcode, and preference of radio stations (orother media sources), in the program selection process; (e) reflectinghuman program parameter definitions in content selection and programcreation (e.g., a program director can modify programs or a DJ canspecify specific songs in conjunction with talk-ups); (f) incorporatingimplicit and observed information into content selection and programcreation (e.g., user location, user behaviors, influencer behaviors,collaborative filtering, etc.); (g) incorporating explicit informationinto content selection and program creation (e.g., user ratings,influencer ratings, influencer share requests, user-specified filterparameters by content attributes [music knobs, seed artists, DJs],user-specified filter parameters by frequency [mix sliders], etc.); and(h) enhancing of sequence of content elements using an iterative processto ensure separation of conflicting content (artist separation forsongs, competitor separation for advertisements).

One or more embodiments also may incorporate an the efficient deliveryand presentation of media content including one or more of (a)separation of data and media files in delivery of content; (b) inclusionof media already owned by user and present on the user device; (c) usinga download process that can dynamically allocate processing based onpriority; (d) improving the efficiency or optimization of local cacheaccording to content priority, reuse, user preferences to minimize (orreduce) bandwidth and to maximize (or improve) available programming;(e) integration of content of various bit resolutions into singleseamless presentation based on content-specific requirements for quality(e.g., music may be accorded a high bit rate, while talk segments a lowbit rate); (f) seamless presentation of content elements (e.g., usingtiming cues, cross-fading, and other metadata along); (g) integration ofdownloaded and streamed content; (h) automatic modification of contentformat to best fit the device and network capabilities; and (i)scheduling of delivery based on (1) the timeliness nature of the contentelements—static content elements (e.g., songs) versus dynamic contentelements (e.g., traffic, news); (2) expressed demand for content (e.g.,a jump command from the user); (3) demands of other users who are beingserved over shared infrastructure (e.g., users' communications aredistributed over time); (4) network connectivity patterns (e.g.,determining and/or learning when a user has better and/or lower costconnectivity); (5) the user device's power source and/or charge status;(6) the user's level of service (based on differentiated pricing); (7)network operator requirements; and (8) other device connectivityrequirements (for phone calls or other data connections).

In addition, one or more embodiments of the present invention mayprovide integration of sequenced, scheduled, and on-demand contentwherein the presentation of scheduled content elements can be seamlesslyintegrated with sequenced content elements; and a sequential orscheduled program presentation can be seamless transitioned back andforth to on-demand content presentation at the request of the user(e.g., user can jump, request more artist info, request more advertiserinfo, etc.).

FIG. 1 illustrates an example of a network environment 10 for providinga customized content delivery system according to one or moreembodiments of the present invention. A consumer may subscribe to theservice, and provide user information, via a computer 14 (via theInternet) or via a user device 12, such as mobile telephone 12. The useralso may receive content at the user device 12 or computer 14. Thus, theuser device 12 may access a wireless communication network 16 (awireless mobile telephone network in this example embodiment) toestablish telephone calls, to receive media content, to provide feedbackto a media content service provider, to make purchases, to respond toadvertisements, and for other communications. A server 18 may becommunicatively coupled to a wireless mobile telephone network 16. Inthis example, the server 18 hosts various processes for managing thecustomized content delivery service including, receiving and processinguser feedback, generating compilation data for the plurality of users,receiving content from content providers 20 and providing content touser devices 12. The server 18 may receive content from various contentproviders 20, such as web sites, radio stations, televisionstations/broadcasters, satellite radio stations, etc., which may then besupplied as content to the user device 12 according to the presentinvention.

To make efficient use of the wireless communication network 16, anefficient delivery methodology may be used. Some media content may bestreamed from a content provider 20 through the server 18 and/orwireless network 16 for immediate or near-term presentation to the user,while other content may be downloaded or updated to be storedperiodically, aperiodically, or on request. In an example embodiment,compilation data may be loaded onto a portable communication device 12through the wireless network 16 during off-peak hours while the portablecommunication device is plugged into a power outlet. In anotherembodiment, compilation data may be loaded onto the portablecommunication device 12 from the consumer's personal computer 14. Forexample, compilation data may be downloaded from the server 18 throughthe internet 22 to a subscriber's portable computer 14 for concurrent orsubsequent transfer to the user's portable communication device 12.Media content already owned by (including licensed to) the user andstored on their personal computer 14 or home entertainment center alsomay be loaded onto the portable communication device 12 and included ina program within the radio-like (or television-like) experience. Thus,the server 18 may include an inventory of the user's content.

In some embodiments, media content may be received from radio stationsfrom around the world and from other content providers 20 to deliverlocal content (such as local news, traffic and weather), and non-localcontent (such as music, talk and podcasts) to subscribers around theworld. The content of a single program may include content from aplurality of the content providers 20. By including traditional radiosources with other sources of media, users may continue to enjoy localon-air personalities and a sense of the local community. The radiostations get to leverage their local brand equity, promotionalactivities, community presence, and advertising sales capabilities,while expanding their base of listeners (e.g., by reaching listeners whoare located outside of the over-the-air broadcast area), strengtheningtheir bonds with existing listeners, and creating new revenue streams.

The content providers 20 may communicate media content to the server 18using any of several methods. For example, some providers 20 maytransmit content to the server 18 through the internet 22. Otherproviders 20 may have an alternative manner of communication with theserver 18, such as by a direct wired or wireless link. Still othercontent providers 20 may provide physical media for access by the server18. In some embodiments, the content may be received via a wirelessbroadcast signal (e.g., digital or analog television, digital radio,satellite radio, conventional AM radio, or conventional FM radio). Thesubscriber's wireless mobile telephone provider 24 also may be incommunication with the server 18, such as for billing and networkmetrics analysis as well as providing content.

In an exemplary program experience, a consumer may select a program andlisten to a group of songs that have been downloaded from the server 18the previous night. Occasionally local news, traffic and weather reportsmay be seamlessly interjected as another content element of the programor may be played upon demand by the user. Such local content may bestreamed in real time or downloaded and offset for playback uponcompletion of download or in the near-term (e.g., after the next song;on the half hour). Clips of on-air personalities or other sessions fromradio stations also may be downloaded in advance or streamed inreal-time as part of a program and played (presented to the user).Liners and talk-ups by on-air personalities and other DJ's may be usedto introduce songs and transition between content elements. The term“liners” is meant to refer to a relatively short content elementtypically used to transition between other content elements and toidentify and/or brand the content provider (e.g., “This 99.5 hotrock . .. ”). The same liner may be played repeatedly throughout the program.The term “talk-ups” is meant to refer to a short content elementtypically used to transition between other content elements and toconvey information to the user such as, for example, to introduce thenext song. Talk-ups may be played repeatedly as well.

The user device may include a media player that includes multiplelogical channels for mixing according to the program. For example, songsmay be queued and played on one channel, while dynamic content such aslocal weather and traffic is queued and played on another channel.Advertisements may be queued and played from yet a third channel, whileliners play from a fourth channel. Various content elements of a programmay be mixed for playback based upon data in the program template.Advertisements and promotions also may be included in a program forpresentation to the user during a program. Local news, weather andtraffic, and/or other dynamic content, may be scheduled to play at aselect time or after a select time interval according to the program.The media player may cause the presentation to stop, or pause, a firstchannel to play the dynamic content on a second channel, and toperiodically play advertisements. The percentage of time allocated toadvertising and promotion may be based upon the type of subscriptionpurchased. A more expensive premium service may include less (or no)advertising and promotion as compared to a standard subscription.

Activation of the Service

At activation of the service by a user, the system must select andprovide appropriate content to the user. The content delivery system mayinclude the ability to customize program content based upon userdemographics, user location, user preferences, user listening habits,and user feedback. After activation, both explicit and implicit methodsof determining user preferences (which form part of a user profile) maybe implemented. FIG. 2 depicts a profile generation process forgenerating a user profile, such as when initiating service for a user. Auser may subscribe to a media content delivery service by accessing aweb site with a personal computer 14 or other access device 15 (e.g., amobile telephone or other device) over the internet or via the mobiletelephone network, a broadband provider, or a WLAN. During registration,a profile generation process may be executed at the server 18 (or at theuser's computer 14 or access device 15). At step 32 the user may submitdemographic and other information. This information may include age,sex, location information (e.g., zipcode, address, county, state, areacode, telephone number, etc.), income information, special interests(e.g., hobbies), birth date, year of birth, employment information(e.g., field of employment, position, title, etc.), ethnicity, maritalstatus, parental status (i.e., how many children), and other data.

In addition, the user may provide information of his or her contentpreferences such as information of media sources such as one or moreradio stations, radio programs, television channels, televisionprograms, artists, DJs, talk shows, and/or media personalities, that theuser likes (and/or dislikes), listens to and/or views, and/or would liketo listen to and/or view. In addition, the user may provide informationof his or her content taste such as the genres of music, and/or otherinformation that he or she prefers.

In an example embodiment, the program(s) of audio content (e.g., music)may be selected and customized (initially selected and later modified)based on user-specified media source and preferences, including:preferred radio stations, favorite artists, mix of unknown vs. familiar,mix of mainstream vs. eclectic, etc. Other factors for selecting thecontent may include the contents of the user's existing music collectionas present on a user device and/or user defined customization.Talk-based content and format also may be customized based on specifiedpreferences. For example, the user may provide information and/or mayselect among preset programs which may have associated DJ's, or the usermay customize a selected program or “design” their own program byselecting one or more particular on-air personalities. The user mayspecify timing and frequency of music, talk, traffic, weather, news,sports, local events, promotions, comedy segments, etc. The user'slocation may be provided by the wireless service provider, via a GPSenabled phone, automobile, or other device, or via any other suitablemeans.

Based on the information from the user profile information (e.g.,location information, demographical information, content preferenceinformation (e.g., media sources and/or content tastes), and/or otherinformation), the server 18 may identify one or more programs that aremore likely than others to be appealing to the user. At step 33, theserver 18 transmits a list of the identified programs to the user forselection. The user then the selects one or more of the programs towhich he or she wishes to subscribe, and information of the selectionsis received by the server 18 at step 34. Accordingly, at step 36 thecustomized program(s) may be generated. More specifically, thetemplate(s) associated with the selected program(s) are then used tocreate the compilation data for each program, including, for example,what type of music is selected, how often and when traffic, weather andother dynamic content (which may be local content) is presented. Theuser information (e.g., age, interests, hobbies, sex, location and/orother information) may be used to select advertising, local weathercontent, local traffic content, and, in some embodiments, local newscontent, and local talk content for the program(s) for the selectedprograms. At step 38, the compilation data and, if necessary, mediafiles (files that include the content) may be transmitted to the userdevice 12 for storage in memory. As discussed, in some embodiments thecontent may be delivered at a different (later) time than thecompilation data.

As discussed, the compilation data provided to the user device 12 isconstructed from a template that may represent algorithms and includepointers for accessing and playing a sequence of content elements andfacilitating user interaction with such sequence. The compilation datagenerated by a template may include multiple lists of content elements;instructions for how often, when and in what order to retrieve andpresent a live media stream, (e.g., local news, traffic and weather) ordownload content (e.g., local news, traffic and weather); pointers tomedia segments, and other data. A content element may have manyattributes associated with it, such as information about a specificmedia file, including information of the title, artist, and album,timing cues to facilitate seamless or cross-faded transitioning amongplay items, dates and times that indicate the time period during whichan item may be played, whether the item content is static or dynamic, auser rating, whether the user has permission to skip the item or toreplay the item and other attributes.

Associated with a program, and identified in the compilation data may bea welcome play list, a sequence play list, a schedule play list andmultiple rotation play lists. The welcome play list may be anintroduction to identify the program and/or a content element, followedby the content element. A sequence play list may be a sequence ofcontent elements to be played after a welcome play list completes. Theschedule play list may include content elements to be presented to theuser at specific times (or time windows), and which may, in someinstances, interrupt playback of another play item or list. A rotationplay list may include multiple content elements (typically songs orvideos) that are to be played one after the other, (e.g., like a stackof record albums or a sequence of audio CDs) interspersed with contentelements in the sequence and schedule play lists. The content elementsof the rotation play list may be played repeatedly in the same ordifferent sequence.

The various categories of content may be assigned different prioritiesin order to prioritize the transmission of the content to the userdevice. In an example embodiment, three priority levels of content areused (e.g., low, medium, and high). Low priority may be assigned tocontent such as music, advertising, talk, and other content that doesnot change quickly and is often re-played to the user over time. Mediumpriority may be assigned to anticipated dynamic content that changesfrequently (e.g., news, weather, traffic). For example, if a programrequires that the weather be played to the user once per hour, theweather segment may be assigned a medium priority so that it isdownloaded each hour. As used herein, content that has been requested(e.g., by the user) for substantially immediate presentation is referredto herein as “on-demand content” and may include, for example, contentsuch as traffic, weather, news, songs, or videos. High priority may beassigned to on-demand content such as traffic or weather content that isto be immediately presented to the user such as, for example, inresponse to a user request for the content. A media player for playingthe content may include multiple queues with transmission priorityassigned to the highest priority queue having a content request. Forexample, a medium priority queue may include a request for weathercontent (to be presented in the next hour) and a user (via a navigationscreen on the user device) may control the program experience to requestdynamic content (e.g., a traffic update). The traffic content requestmay be allocated higher priority, placed in the high priority queue, sothat the traffic content is received before the weather content andother lower priority content. The song currently being played to theuser may continue for a period of time (e.g., one to thirty seconds)until the higher priority content is received. Upon receipt, the currentsong may be stopped, or paused until after the downloaded on-demandcontent is finished playing, and then the song may resume.

A user may switch among programs to listen to different content (asderived from a corresponding program). Also, as discussed the play listsfor a program may rotate meaning, for example, that songs from the samegroup of songs (the rotatable play list) may be selected for playrepeatedly over a given time period (hours, days, or weeks) in the sameor different sequence (to thereby provide the content for a non-specificsong type identified by the compilation data).

In some embodiments, as the subscriber uses the service and listens tothe media content, explicit and implicit feedback indicative of theirlistening preferences may be obtained, which may be used to modify thetemplate for that user. For example, when a user is listening to a song,the user may skip the song, or rate the song (positively or negatively).Alternately, the user may re-play a song (indicating that the user likesthe song and/or artist). User interactions are stored on the user device12 for transmission to the server 18 and comprise implicit feedback. Inaddition, through interaction with the server 18 (either via a computer14 or the user device 12), the user may provide information formodifying the template for the user, which comprises explicit feedback.More specifically, the user may indicate a desire to modify thefrequency and/or amount of specific types of content. For example, theuser may request less or more songs, news, traffic, weather, talk orother type or sub-type of media content. As another example, the usermay request less or more content from specific artists and/or genres.Again, the explicit feedback data may be stored at the user device 12(or computer 14), and transmitted to the server 18, either in real timeor periodically. Such transfer may occur directly over the wirelesscommunication network 16, or indirectly over the internet 22 via theuser's computer 14 or other access device 15. In addition, forembodiments in which the portable communication device 12 directlyaccesses the internet, the transfer may occur directly via the internet.

FIG. 3 depicts a process for modifying a template based on feedback fromthe user, which is performed for the plurality of users who subscribe tothe service. As described above, a user may provide implicit feedback(e.g., while listening to the media content) and/or explicit feedback.At step 42, the implicit and explicit feedback stored on the user device12 is received by the server 18. At step 44, the user's templates aremodified based upon the feedback. In some embodiments, feedback providedfor one program may also cause the template of one or more otherprograms to be modified. In some embodiments, feedback may cause auser's global preferences to be changed in such a way that subsequentcompilation data may be modified. In this example embodiment, thefeedback provided for each program is used only to modify the templateassociated with that program. In another embodiment, the explicitfeedback provided for one program may also cause the template of otherprograms to be modified while implicit feedback is used only to modifythe associated template. In still other embodiments, the user canindicate whether explicit and/or implicit feedback should be used tocustomize all templates, select templates, or only the associatedtemplate. At step 46, the compilation data is constructed for eachprogram based on the modified template(s). In practice, some templatesmay be modified while others may not be modified (because no feedbackhas been received). At step 48, the compilation data and content (e.g.,immediately or at a later time) are transmitted to the user device 12.The process of FIG. 3 typically will be performed for each program andmay be implemented each time new feedback is received, daily, weekly,monthly, and/or at any other time intervals.

User Device Interaction

In some embodiments, a user may control various aspects of thepresentation of the content to suit their immediate needs. For example,a user may pause a segment, skip a segment (skipping of certain types ofsegments such as advertising may be precluded or limited), or replay asegment (e.g., skip backwards a fixed amount of time or to the beginningof a segment). The user also may jump to specific segments for immediateplay, including traffic, weather, sports reports, news, and local eventinformation, after which play of the prior segment is resumed. The usermay specify that certain information, such as traffic, weather, news, orother content play at certain times or certain intervals. The user alsomay enable alerts (breaking news, traffic) to interrupt the presentationof content (songs), bookmark a song or artist, purchase a song or album,or recommend a song or artist be added to a another subscriber'scontent. A user additionally may request an immediate additional(second) song of an artist upon hearing a first song by that artist thatthe user likes. A user also may request additional information of anadvertisement or promotion (or to purchase the advertised product),which information may be transmitted to him immediately or later via atext message, email, or other suitable means from the server or directlyfrom the advertiser.

FIG. 4a depicts some exemplary user interface screens for providing suchinteraction, including controlling presentation of the content, for amobile telephone being used as the user device 12. After a userregisters for the service and provides the user information to theserver 18, the server 18 selects programs that are most likely to beappealing to the user. The selected programs are then transmitted to theuser device 12 to allow the user to subscribe to one or more of theprograms. Screen 302 of FIG. 4 depicts an example interface displayingthe programs selected by the server 18 and offered by the service. Theuser may subscribe to any of the programs by selecting one or more ofthese programs to be available on the user device 12. Based on theselections and user information, the service may then construct andtransmit the compilation data and content (if necessary) of the selectedprograms according to the methods described herein. The selectedprograms are added to the user's subscription list of programs, which isdepicted in screen 304. The user then may select from the Program Listdisplay 304 to commence play of a program. In some embodiments, uponinitiating the service for a given day or at a given time of day, adefault ‘welcome’ program (previously selected by the user) maycommence. In another embodiment the “Programs List” display 304 mayappear allowing the user to select a program.

When a program is requested for play, a Play screen 305 may be displayedwhich includes, in the case where a song is playing, information of theartist, album and song and representation of the album cover or otherimage (e.g., photo of artist), or in the case where a talk-based segmentis playing, information of the personality, song title, and othertextual and graphical information related to the subject matter. In someembodiments, the Play screen 305 may include video content that issynchronized with audio that is being played. The Play screen 305 alsoincludes a user rating interface 303 to allow the user to rate contentbeing played by selecting the thumbs up or thumbs down symbols.

While the user is listening to content, the user may navigate throughvarious screens. Screen 306 illustrates an example navigation screenwith controls that allow the user to pause, stop, and start playback; goto a jump screen 308; go to an actions screen 310; rotate forward withinplay lists associated with the program; rotate backward within playlists associated with the program; rate the current song or othercontent element (selecting the thumbs up or thumbs down symbols).

When the user activates the jump command from the navigation screen 305,a jump screen 308 may be presented, including a list of categories ofmedia content (e.g., traffic, weather or news) and allowing the user toselect a category of media content to be played. As discussed above, ajump request may invoke a high priority content request. When the userprovides an action request (by selecting Act from the navigation screen306), the action screen 310 is displayed, including a menu of actionssuch as, for example History; Info; Share (causing the song or artist tobe shared with one or more other subscribers as selected by the user),Buy (causes display of the cost of the album and song with a purchaseindicator allowing the user to purchase either). If the user selects‘Info,’ a song detail screen 312 may be displayed, including informationabout the song, such as the song title, artist, and information aboutthe artist. If the user selects History, a listing of the history 314 ofsongs recently played may be shown. The user also may select to jump toa specific song.

The user may also select the tools symbol to receive a listing ofavailable tools. Among the tools, the user may select to fine tune theprogram, which causes the Fine Tune screen 316 of FIG. 4b to bedisplayed for modifying the attributes of a program. User inputs via theFine Tune screen 316 of this example embodiment comprise explicitfeedback as discussed herein and may be used by the server 18 to modifythe template associated with the program. Specifically, the Fine Tunescreen 316 of this example allows the user to adjust the relative amountof one or more sub-types of content, such as musical styles, included ina program. For example, by “rotating” the adjustment knobs 321 the usermay increase or decrease the likelihood of selection of one or moresub-categories of content, which in this example include the sub-types(of music) as classified by degree of similarity to other music in theprogram (“eclectic” knob), artist obscurity (“garage” knob), and songobscurity (“deep cuts” knob). As will be evident to those skilled in theart, these sub-categories are for example purposes only and variousimplementations of various embodiments may allow the user to adjust thecontent of one or more other sets of sub-categories (such as, forexample, increasing or decreasing the likelihood of selection of (1)jazz and blues; (2) vocal and non-vocal content; (3) 70s, 80s, 90s, and2000s music; (4) popular and obscure, or (5) all of these sets ofsub-types; or others. The user also may edit the seed artists that areassociated with a program, whereby music from the seed artists andartists of music similar to the seed artists is included in the program.A seed artist display 318 lists the seed artists available for a givenprogram and allows the user to change the seed artists.

The user also can adjust the relative quantity of each category ofcontent as represented by the horizontal bars 322. The user selects thecontent category, which in this example includes music, talk, traffic,weather, or news, and uses the device controls to increase or decreasethe frequency that the selected content category appears in thecompilation data associated with the program. The user also may elect tochange the on-air personalities, (e.g., the DJs) by selecting thepersonalities 323 on the screen 316.

Media Content Delivery System 100

The templates corresponding to the programs are managed at the server18, and used to construct the compilation data for the programs for theusers. As discussed, along with other information, the compilation dataassociated with a program identifies the content elements (e.g., thesongs and segments, play lists, etc.) and the playback algorithms forthe program. An intelligent client-server architecture also may ensurethat the compilation data and content are delivered to the portablecommunication device 12 in an efficient manner. The delivery of themedia content to the user devices may consider, and be based on, thetime-sensitive nature of content, the geographic location of asubscriber, the power and connectivity status of the portable device,the status of the network utilization, and the explicit demands of thenetwork operator. Content that is not time-sensitive (or that is lesstime-sensitive than other content) is referred to herein as “staticcontent” and may include, for example purposes only, content such assongs, liners, promotions, advertisements, event information, comedysegments, and some on-air personality commentary. Static contentelements may be delivered to a user device during one more time periodsof increased available wireless data capacity, such as, for example,during network off-peak hours, and/or when the wireless network 16 isoperating well-below capacity. Static content also may be delivered tothe device while the device has alternate lower cost or high bandwidthconnectivity options (via the alternate connectivity option), and/orwhile the device 12 is charging. Much of the static content may remainstored on the device 12 for days or weeks and be played and replayedwithout consuming additional network 16 capacity.

Content that is time sensitive is referred to herein as “dynamiccontent” and may be delivered just prior to the anticipated presentationof content or may streamed for immediate presentation. Dynamic contentelements may include, for example purposes only, content such astraffic, some news, weather, sports and the like.

Each device 12 may intelligently request and receive static content fromthe server 18, according to a schedule that is based on subscriber'slocation to increase the efficiency of utilization of wireless network16 and according to the device's status (e.g., when it is plugged in;when it has viable signal strength; and/or when it has access to analternate network such as WiFi or the Internet (e.g., via a computer).The timing of delivery of content may be coordinated to minimize anynetwork congestion amongst user devices that are being served. Theoperator of the network that provides connectivity of the user devicemay specify how bandwidth utilization for delivery of content isallocated on a device-by-device basis and/or on a geographic basis inorder to optimize utilization of the network and coordinate it withother services that utilize the network.

FIG. 5 shows a media content delivery system 100 according to an exampleembodiment of the invention. A client module 102 resides on the userdevice 12 (see FIG. 1), which, as discussed, may comprise any devicecapable of playing media content, such as a mobile telephone, a personalcomputer 14, a portable media player, a car audio system, a homeentertainment center, an access device 15, a multifunction device, oranother audio device or video device. Media content is communicated tothe client module 102 from a content server The content server 104 mayreside, for example, on the server 18 shown in FIG. 1. The media contentmay be transmitted directly to the portable device 12, either over thewireless network 16 or a wired network (e.g., the internet 22). Forexample, in some embodiments the portable communication device 12 maysupport protocols for accessing the internet, (e.g., serve as an accessdevice 15). In other embodiments, the media content may be transmittedindirectly, such as through an interface module 106. The interfacemodule 106 may reside, for example, on a personal computer 14, oranother access device which has access to the internet, while the clientmodule (in this example) may reside on a mobile telephone.

The media content delivery system 100 also may include an applicationserver 108, which may form part of the server 18 of FIG. 1. Theapplication server 108 processes user data and user feedback to modifytemplates for constructing programs for programs. Compilation data iscommunicated to the client modules 102, either directly or indirectly(via the interface module 106) from the application server 108. Theapplication server 108 also may perform digital rights management ofprotected media content, and other programming, communication, andadministration functions. User data (e.g., initial user data orfeedback) may be received by the application server 108 via the internetthrough a web site portal (or via wireless network 16) from the clientmodule 102, either directly or indirectly via the interface module 106.

The interface module 106 may detect whether the portable communicationdevice 12 is present, respond to requests from the client module 102 toupload user feedback (e.g., behavior and ratings) and/or preferences tothe applications server 108, and pass such requests to the applicationserver 108. In addition the interface module 106 may receivecommunications from the application server 108 and content server 104 tobe provided to the client module 102. In some embodiments, the interfacemodule 106 executes in the background on the user's personal computer14, access device 15, or other device 12. In other embodiments a userinterface may be included as part of the interface module allowing auser to initiate communications to request new programming, provideexplicit and implicit (ratings) feedback, etc., from the device hostingthe interface module.

Data sources 110 including streaming content may be provided to thedelivery system 100. Various publishers may grant licenses for thedistribution, airing and use of media content. In this exampleembodiment, data from the data sources 110 may be provided to theapplication server 108 while content (including streaming and recordedcontent) from the data sources 110 may be provided to the content server104. In another example embodiment, content 110 is stored on theapplication server 108 where programming and digital rights managementis performed, while streaming media content 112 may enter the systemdirectly to the content server 104. As discussed elsewhere, the contentmay comprise any and all type of media content such as audio (songs,albums, talk, news, weather, on-air personalities, lines,advertisements, promotions, user-generated, etc.) video (music videos,talk shows, news casts, weather shows, advertisements, promotions,movies, television shows, sporting events, variety shows,user-generated, etc.) and/or other content or content categories. Insome embodiments, data of the content (including streaming content)received by the content server 104 may be provided to the applicationserver 108 from the content server 104.

The data received by the Application server 108 may include data aboutthe content and is referred to herein as metadata. Depending on theembodiment, various metadata may be included or omitted. In this exampleembodiment, metadata may be provided to the Application server 108 andused by the server 108 to provide a seamless presentation of the contentelements (i.e., a presentation that is radio-like or television-likeeven though it may be customized). The four categories of metadata usedin this embodiment include cues, fade times, layering flags, and gainvalues. “Cues” is meant to refer to time positions used to control theplayback timing of adjacent content elements. Fade Times refers to timevalues used to specify durations of transitions when beginning and whenending a content element. Layering flags refers to indicators thatspecify whether content elements can be overlapped during playback andgain values refer to decibel values used to ensure overlapping andadjacent content elements are played at consistent volume levels. Someembodiments may use a subset of these listed metadata categories (suchas cues and fade times) and other embodiments may use additionalmetadata.

FIG. 6 provides a more detailed illustration of the functionalcomponents of an example embodiment content delivery system 100. As willbe evident to those skilled in the art, other embodiments of the presentinvention may include more, fewer, or different functional components.In addition, the functional components illustrated (such as those of theapplication server 108 and the content server 104) may be implemented insoftware on one or more or more computer systems or devices that areco-located or distributed, depending on the embodiment and/orimplementation.

The client module 102, which typically resides on the user device 12,may include a user interface 122, a media player 124, media contentfiles 144, and various management programs, including a playback manager126, profile manager 128, content manager 130, data manager 132 andsystem event manager 134. A more detailed illustration of the processesof these modules is shown in FIG. 7.

Referring to FIGS. 6 and 7, the user interface 122 implements screens(such as those shown in FIGS. 4a and 4b ), menus, and facilitates keyentries and other input/output functions that enable the user to controlthe media services on their portable communication device 12. A user maycontrol playback, view content-related materials and messages, and editpreferences. User interactions may be captured by process 136 and logged(stored in memory). Some example requests that the user may trigger are:select programs, start, stop and pause programming; skip a song; jump toan item (such as news, traffic or weather); rate a song or other item;share an item (e.g., song, artist, or program) or program preferenceswith a group or person; and buy an item. Enforcement of some parametersmay be implemented, such as limiting the number of song (or othercontent element) skips per hour, and limiting the number ofadvertisement skips per hour. Program changes may be logged, such as,for example, when the user scrolls through a list of programs, andselects a first or different program. A user also may modify a programto add or edit (e.g., via the fine tuning screen) or delete (unsubscribeto) a program. As discussed, a user, for example, may edit theparameters for a given program (e.g., via a fine tune screen). The useralso may manage communications, such as by setting or altering specifictimes and days or recurrence periods for performing media content andcompilation data updates from the application server 108; or by manuallyrequesting an immediate update from the application server 108. As thecontent changes the user interface commands and screens may be updatedas well by process 138.

The data manager 132 of the client module 102 on the user device 12 maycommunicate with the application server 108 (directly or through theinterface module 106 depending on the connection) to update the server108 with explicit feedback and user behavior history (e.g., implicitfeedback) and to receive updated programs and metadata for determiningcontent. At step 172 the data manager 132 communicates with the server108 to receive the updated or new compilation data. Based on the new orupdated compilation data, process 174 determines what new content (e.g.,songs) are needed and provides content request data to the contentrequest queues 156. Process 176 waits for the next update time (e.g.,based on the download schedule) or triggering event in order to initiateprocess 172 again. The processes of the data manager module 132 may beperformed according to a download scheduled and completed daily, weekly,monthly, or at any other desired interval or time and may be performedaccording to a triggering event, such as receiving a command from theserver 108, a user request, a user providing feedback (fine tuningscreen, ratings, etc.), a user traveling (e.g., driving or flying) to anew location (e.g., and needing new traffic, weather, and news content),and/or any other triggering event. In addition, different categories ofcontent and content priority may be downloaded according to differentschedules and/or events. The compilation data 150 received from theserver and the content selected for presentation is provided to theplayback manager 126.

The playback manager 126 receives requests from the user interface 122,responds to the user requests at process 148, traverses the compilationdata at process 152, analyzes content requirements at process 154 andrequests content by adding an entry to a content request queue 156 atprocess 158. The playback manager 126 determines playback sequence basedon the compilation data 150 to queue up items, and in response tospecific user requests to play a specific item. For example, a userrequest for content (e.g., an on-demand content request for, forexample, traffic, weather, or news) may be provided to the contentrequest queue 156 (the high priority queue) if the content has not beenreceived and, upon confirmation from the content manager 130 that thecontent is ready for playback, to the media player 124. The playbackmanager also queues items for play at scheduled times according to thecompilation data 150 and provides requests for dynamic content (traffic,weather, news, etc.) to the content request queues 156.

The content manager 130 communicates with the content server 104 and mayprocess content requests from the content request queue 156 to streammedia and download media files and the corresponding media rights tolocal storage (on the device 12) based on a download schedule, contenttype and priority, charging status, and other factors at process 164.Process 162 processes the content request queues to ensure that higherpriority content is processed before lower priority content. If while afirst content request is being downloaded a second higher prioritycontent request is received, the first request may be stopped, thesecond request completed, and then the first request resumed. Timecriteria is evaluated at step 166 to determine if the current time iswithin a window of time (e.g., based on schedule provided by the client102 to server) during which medium and/or low priority content is to bedownloaded. Next, if the current time is within a selected window,process 168 determines if the state of the device satisfies statecriteria such as, for example, determining the availability of one ormore preferred networks, external power, and/or voice call inactivity.If the result of either process 166 or 168 is negative, the controlflows to process 162. If the result of both processes 166 and 168 isaffirmative, the method continues to process 170 to optimize (i.e.,improve the efficiency of) the content store. High priority content, inmany embodiments, may not be processed by modules 166 and 168 and may beimmediately requested. Process 170 manages the local memory and cachecontent by removing unnecessary files (e.g., expired advertisements,promotions, talk, news, music, etc.), and to enforce user-specifiedstorage limits, to allow for addition of new content items and to reduceor minimize the amount of future downloading required. For example, thisprocess 170 may remove all expired and dynamic content files (traffic,weather, news, etc.), calculate how much space is required to be clear,assign priority order of remaining items to download, remove items thatare not in the current log from lowest to highest priority until enoughspace is available.

The media player 124 accesses media content stored (media files 144),buffered or streamed onto the portable communication device 12. Themedia player 124 may decode, decompress compressed content and decryptencrypted content as necessary. The media player 124 responds torequests 142 to play a media file 144; play a media stream 146; stop orpause playback; move to a position; get the current position; set thevolume; and set other audio parameters. In addition, the media player144 uses the metadata do ensure a seamless presentation of the contentto the user. In an example embodiment the media player 124 may includemultiple channels, and mix the output of those channels in such a manneras to provide smooth transition between segments.

The profile manager 128 analyzes user interactions, such as whether auser skipped, replayed and/or rated a segment and whether a usermodified any attributes of a program. Process 160 modifies thecompilation data to reflect some or all of the user interactions andnotifies the data manager 132 of the interactions, which are transmittedto the server upon a subsequent data communications session for futureuse in constructing compilation data for the same user and other users.

The system event manager 134 monitors changes in system status, such aspower source, battery charge level, network connectivity, and callnotification. The status manager 134 may notify the other programmodules 122-132 to interrupt or modify their activity. For example, thesystem event manager 134 may receive requests for data (e.g., time andcharging status) from the content manager 130. The system event manager134 also may implement specific power management protocols anddiminished connectivity response protocols.

The client module 102 typically receives content from the content server104, which may be housed on a remote computer system (e.g., server 18).As shown in FIG. 6, an example embodiment of the content server 104 mayinclude a media file server 180 and a streaming content server 182. Themedia file server 180 transmits requested media files to the clientmodule 102 directly using the wireless communication network 16 orindirectly over the internet 22 through the interface module 106. Thestreaming content server 182 transmits streaming media content to theclient module 102 over the wireless communication network 16 or via theinternet. In some embodiments, the streaming content is reformattedbefore being transmitted to the client module 102. In such anembodiment, a streaming media transcoder 183 may be included totranscode the stream into a client-compatible format.

Application Server

As discussed, the user may access a web site (not shown) to communicatewith the application server 108 to register for a media content service,update their user profile, and browse, search, select and edit variousprogram templates, including modifying selection of artists, genres, andstyles, programming sequences, and creating custom programmingsequences. This data may be provided to the profile processor 192, whichmay access the user profile, and templates to select a media genre andstyle, and to select seed artists for a template, as well as modifyother attributes of a template.

A communication scheduler process 204 manages communications with theclient module 102 of the various subscribers. As previously described, auser may schedule communications to occur periodically, aperiodicallyand upon request to update the user's program preferences and programtemplates. The communication scheduler 204 may maintain thecommunication schedule for each user, and alter the schedule as neededbased on location of user, content demands of other users in nearbylocations, content requirements, client device capabilities, userlistening behavior, and/or network provider requirements (wirelessand/or wired network requirements). The schedule also may be alteredaccording to whether a portable communication device 12 is plugged in orcharged, whether the device 12 is docked or otherwise coupled to acomputer 14 or access device 15, and/or whether the device 12 has a lowcost (e.g., free) communication link available (e.g., WiFi). The rulesused by the scheduler 204 may be propagated, in part, from the wirelessservice provider. For example, instead of having all subscribers withina zip code, cell site service area, or other area initiate downloadingat the same time (which could bog down the network), downloads ofcontent to subscribers serviced by common infrastructure and/orresources of the wireless network provider may be distributed over time.More specifically, downloads may be staggered so that only a fixed orsmall percentage of the total subscribers in an area are everdownloading at the same time or downloading large amounts of media(e.g., songs) at the same time.

The user services process 190 provides the log file from the client 102to the program processor 206 and may request the compilation data 150from the program processor 206 to provide to the client 102.

The program processor 206 generates programs which are downloaded touser's device 12 (e.g., a portable device, personal computer, etc.). Inone embodiment compilation data is a log of media selections. The mediaselections may include, for example, specific songs, talk segments,advertisements, podcasts, and specific streaming media clips, such asupdated local news, weather and traffic reports. The program processor206 may initiate a song selector process 208, a segment selector process210 and/or an advertising selector process 212 to generate the program.

Following is an example scenario of user interactions with the system100. A user 260 (see FIG. 6) accesses a web site of the content serviceto register for the service and submit demographic and otherinformation. An activation process 262 registers the user and a profileprocessor 192 generates and stores profiles 264, including a userprofile and one or more device profiles for the client device(s) thatthe user may use to host the client module 102. The profile processor192 may also create user preferences 266 based on feedback from theuser. In some embodiments the initial preferences 264 are set based uponthe information received during registration. Other preferences 266 maybe updated over time based upon the user behaviors. The profileprocessor 192 also may select one or more programs based on contenttemplates 268 for the user based upon the user preferences 264. Theprocessor 192 may store any program selections made by the user at thetime of registration. Once registered, the user also may edit programselections through the client module 102 or via the internet.

The program processor 206 then generates the compilation data for theuser, by using content templates associated with the selected programs.The compilation data typically identify(ies) at least some of the mediafiles. The compilation data and content may then be transmitted to theuser device 12 (typically at separate times). For example, at somescheduled time the portable communication device 12 may access theapplication server 108. The user services process 190 may respond at theapplication server 108 by triggering the program processor 206 tocommunicate with the content server 104. The content server 104 may thentransfer the content to the client module 102. In addition, userservices process 190 may retrieve and provide the compilation data 150(including metadata) to the client 102 of the user device 12.

As the user views and/or listens to the playback of a program, the usermay enter input such as explicit and implicit feedback, requests toshare content and/or program preferences, request to purchase content oradvertised products, and/or other interactivity. The user interaction islogged and, in some instances (e.g., a request to purchase) may causethe client 102 to establish a communication link (e.g., to make thepurchase). At scheduled times this behavior information may betransmitted back to the user services process 190 of the applicationserver 108, allowing the profile processor 192 to update the preferences266. Also, the program processor 206 may modify the content templatesfor that user based on such updated preferences and specific userinteractions, (e.g., a request to add an artist to a program or performother modifications via the fine tune screen).

The application server 108 also may include publishing web servicesprocess 194 that allows publishers to upload media content from datasources 110, to classify the rights of their content and to provideadditional management of the media under their control. Publishers canindicate that the content may expire on a particular date and time,while other content may be available indefinitely. Traffic and weathermay expire hourly as a default. Songs, videos, advertisements and othercontent may expire monthly. Such third parties also may receive feedbackabout their content. A digital rights manager (DRM) process 198associates specific rights and expirations with media content and renewslicensed rights as per an associated license. One or more serviceadministration processes 202 manage transactions, such as client (user)billing, carrier fees, metrics reporting for advertising, advertiserbilling, and customer service reporting.

FIG. 8 illustrates the processes for generating compilation data for theusers. Process 220 of the program processor 206 updates the serverdatabase 266 with user preferences (e.g., ratings, requestedmodifications) and behavior (e.g., skips, replays, percentage played,etc.). The process 220 also determines the status of the contentelement, such as whether or not the content element is stored on theuser's device 12. The user location data also may be updated whenavailable. User specific templates necessary to construct all thecompilation data for a user are retrieved from the templates database268 by process 222. Process 224 modifies the retrieved templates byapplying user specific filters. This modification may be based onfeedback from the user such as modification specified by the user (e.g.,via the fine tune screen, rating, skips, etc.), such as the frequencywith which to play a category or specific item of music or othercontent. An iterative approach may be implemented, for example, to stepthrough the modified template to construct compilation data with theappropriate sequence and frequency of items at process 226. This process226 may include creating a list of scheduled items (i.e., a scheduledplay list) for such things as weather, traffic, and/or news. Asdiscussed, the template may include a sequential play list of contentelements of the various content categories.

At process 228 client profile requirements are applied, wherein devicerequirements are analyzed to ensure that media content selected is in acompatible format for the user device 12. For example, content withappropriate file format, compression scheme, bit resolution, and/ordimensions may be selected. In addition, the process 228 may retrieveinformation that the client 102 uses to ensure that the client 102retrieves content according to appropriate download schedule. Based onthe constructed compilation data, process 230 identifies the requiredcontent for the compilation data. For example, process 230 may determinewhat specific and how many non-specific songs (or videos) are required,what talk segments are required, what advertising is required, etc. Fornon-specific content, the process 230 may determine the number of slotsavailable for unspecified content, which may be allocated (used) as partof a rotated play lists as described above. At process 232 the user'sprofile (including preferences and behaviors) are obtained, so they maybe provided, along with the content requirements, to other processesused in assembling the compilation data.

The program processor 206 may initiate the song selector process 208,the segment selector process 210, and the advertisement selector process212. The song selector process 208 may determine song identificationdata for lists of songs that most closely match user preferences andother criteria, and that comply with program rules. At process 234, thesong selector process 208 applies music content filters derived fromexplicit and implicit user feedback and parameters derived from suchfeedback such as, for example, feedback relating to desired or undesiredseed artists; genres, styles, listener ratings, listener behavior,artist relationships, degree of similarity to other music in the sameprogram, artist obscurity, song obscurity and/or other parameters. Thisfilter may change over time due to explicit and implicit “Influences.”For example, subscribers may be grouped together based on demographics,location, etc. to define a filter. If many people in a group dislike aparticular song or artist, the filter may adapt based on skips and badratings among the group members. For example, a given artist may beremoved from future content selection (for a given program) for allthose in that group. In addition, some subscribers of each group may beselected (or asked) to be an influencer wherein feedback provided bysuch influencer is used to modify templates for all those in the samegroup. At process 236, the music content sequence is optimized (orenhanced) with the order of the songs arranged to comply with rules forartist separation, tempo separation or other metrics selected to providean enjoyable listening experience.

The segment selector process 210 identifies content elements forsegments of a program, such as segments of talk, news, weather, traffic,liners or advertisements; or a segment which introduces another segmentor song (e.g., talk-up or liner). At process 238, the segment selectorprocess 210 applies information content filters based on a selectedcategory, service partner affiliate, on-air personality, location, userpreferences, and/or listening behavior. Process 240 optimizes (orenhances) the information content sequence to determine an order ofsegments within the program.

The advertising selector process 212 may determine which advertisementsmatch specific criteria and scheduling rules. At process 242, theadvertising selector process 212 applies promotional content filters toselect specific advertisements based on affiliate, listenerdemographics, location, and listener behavior. At process 244, thepromotional content sequence is optimized (enhanced) to satisfyadvertiser preferences, such as spacing advertisements amongcompetitors.

At process 246, the program processor 206 assembles information of thesongs, segments and advertisements into the compilation data. At step248 the program processor 206 stores the compilation data and contentfor transmission to the client module 102.

FIG. 9 provides a graphical representation of an example embodiment of acontent delivery system according to the present invention. Morespecifically, FIG. 9 illustrates a delivery scheme for delivery of thecompilation data, static content, dynamic content, and on-demand contentin one example embodiment. Referring to 301, the compilation data may bedelivered without restrictions. For example, the compilation data may bedelivered by itself or with (as part of or during the same time period)static content elements, dynamic content elements, or on-demand contentelements. Referring to 302, in this example embodiment, static contentelements (such as songs, videos, advertisements, etc.) may be deliveredduring one or more time periods of increased available wireless networkcapacity (e.g. during off-peak time periods). In addition, staticcontent may be delivered when the user device is accessible via anothercommunication link that does not use the wireless data network (e.g.,when the user is connected to the Internet via a WiFi network) and/orwhen the user device is coupled to an internet access device such as theuser's computer. Delivery of static content via an alternativecommunication link or via an internet access device may occur at anytime because such delivery does not utilize resources (or reducecapacity) of the wireless data network. Further, the time of delivery ofstatic content also may be based on one or more parameters determined byan operator of the wireless data network (to evenly distribute thedelivery of static content via a particular component of theirinfrastructure such as a cell site over a time period to reduce networkcongestion), the location of the device, and/or the subscription levelof a user of the device.

Referring to 303, dynamic content elements may be delivered according toa schedule such as, for example, at twenty-five minutes and fifty-fiveminutes after each hour to allow that dynamic content to be up to datewhen presented to the user at each hour and half hour. Depending on theembodiment, some dynamic content (e.g., weather) may be deliveredaccording to a different schedule than other dynamic content (e.g.,traffic) and such schedule may be based on the frequency and time thatthe user desires to hear (or view) the dynamic content or the time atwhich playback of the dynamic content is scheduled to occur. Referringto 304, on-demand content typically is delivered substantiallyimmediately after a user request for the content.

Following are three example scenarios of listening and userinteractions. The first interaction and experience is that of Chris, a24 year old male from Los Angeles, Calif. who owns music by variousartists in the rhythm and blues genre (among others) and listens to Hot92 Jamz®. In the morning, he grabs his wireless phone, gets in his carand begins his commute. He connects his phone to his car audio systemand selects a command to start the media content delivery service whichimplements the system 100 described above. He immediately hears awelcome message (“Good morning and welcome to the Hot 92 Jamz onSprint®”), followed by the latest traffic report as his welcome playlist. Then a sequential play list commences play, which may include thenational news. He does not want to hear the news at this time, so hepresses a key corresponding to a skip function. The next item mayinclude a sports report with content selected based on his location. Forexample, when in the Los Angeles area, a segment on the Lakers® from anAM sports station in Los Angeles may be played. In addition, he attendedSyracuse University and a segment about the Syracuse Universitybasketball team from a radio station in Syracuse, N.Y. may be played?irrespective of his location. He may receive a call while listening tothe content and the audio playback pauses to allow him to take the call.Upon ending the call, the sports report continues automatically where itwas paused. Should he forget what the sports cast was talking about, hemay press a button corresponding to replay, allowing play to skipbackwards to the beginning of the segment, or further, as necessary. Atthe end of the sports report, a segment of talk by a DJ from anotherradio station may play. This DJ does the evening show on Hot 92 Jamz®,but Chris likes to listen to the DJ in the morning, so the segment isincluded here. The DJ may begin his show with his usual entertainingrhetoric about his take on the current news in the world of R&B, thenintroduce a song. After a Hot 92 Jamz liner, a “deep cut” song from MaryJ. Blige's first album, plays. After the song ends, another liner playssaying “Now, new music called Gruve Song from up-and-coming DC areasongstress Tamara Wellons” (which was selected for him because itcorrelates well to the music of Mary J. Blige and Alicia Keys, two ofhis favorite artists). A Hot 92 Jamz ID then plays, followed by thesong. He likes the song and selects the ‘Act’ command and the “Info”function so he can learn more. The phone display shows an artistdescription and also may connect to the network to begin downloading andcaching additional audio about the song or artist. Based on the receivedinformation, after the song, a sixty second blurb may play about TamaraWellons: such as who she is, where she comes from, snippets from othersongs, when she is playing near his location (e.g., in Los Angeles),and/or other information. In addition, either automatically or upon usercommand (depending on the embodiment or user or system settings), TamaraWellons may be added to Chris' list of favorite artists, which isaccessible from his Web browser (phone or PC) and which allows Chris toget more information, hear more music samples, subscribe to concertnotifications, and buy songs. The service 100 has stored the fact thatChris likes Tamara Wellons and will update filters for his compilationdata templates for the corresponding programs to include Gruve Song andSpring Giddiness, another of her songs, into future programming, as wellas music from similar artists.

The second exemplary interaction is for Alice, a 34 year old female fromPotomac, Md. who has just left work at about 5:30 pm in downtownWashington D.C. Alice is experiencing traffic congestion on her way topicking up her son from day care. She turns on her service-enabled carradio, which automatically selects Alice's “commute” program, which shecalls “Homeward Bound.” Since she has set her preferences for “HomewardBound” to always play traffic first, the first thing she hears is thelatest traffic report from Progressive Talk 1260® (she listens to Imus'live show® in the morning every day on Progressive Talk 1260 broadcast)for the DC-Maryland suburbs. While listening to the traffic report shehears that the GW Parkway is blocked by an accident and immediatelyembarks on an alternate route. After the traffic, Alice hears lifestylediscussion from Loo & Lori® (a pair of radio personalities), who are the97.1 WASH-FM® morning team that Alice loves but always misses becauseshe is listening to Imus in the morning. After the lifestyle discussion,Alice hears music from LeAnn Rimes. Alice does not want to hear thatmusic right now so she presses the Skip button (if she never wanted tohear it again she could press a key to give it a “thumbs down” vote).The song immediately fades out and segues into music from Mariah Carey(one of Alice's favorite artists). After the song ends, a promo playsannouncing the locations for the WASH-FM Holiday Toy Drive, followed byan advertisement for a special sale at Macy's this weekend. Alice needsto do some serious Christmas shopping and presses the “Tell Me More”button. After the advertisement finishes, she hears a sixty second blurbwith more detail about the sale as well as hours and directions to thestore. She will later receive an email with all relevant information anda special coupon about the sale. Next, Loo & Lori return to discussadvice on buying diamonds, which she finds very interesting, followed byholiday office party etiquette, which Alice doesn't want to hear.Shortly after that discussion begins Alice presses the Skip button toget to the next song, a song by Whitney Houston that she had never heardbefore. She bookmarks the song with a “thumbs up” vote so she can accessand purchase it later on her PC. Later, she gets an email with links tothe songs and artists she has rated a thumbs up where she can click thelink to find out more information and/or purchase the song or CD of theartist. In addition, the service 100 has recorded her actions formodifying the template associated with her programs.

Carlos, a 45 year old male from Cleveland, Ohio grew up on Led Zeppelin®and Van Halen®. He is a loyal WMMS listener but is frustrated withtoday's new music and often resorts to listening to his iPod®. He hearsabout the WMMS personal radio service on a WMMS broadcast and signs upon his PC, where he tells the service operator all about the music heloves and indicates he only really wants to find new music (he canlisten to all the classic stuff whenever he wants off of his iPod or hisphone) and local concert information. He doesn't want to hear any news,traffic, sports, etc. Later that day, when he “dials up” the WMMSservice on his wireless phone, WMMS' Big Rig® tells him he is about tohear several new bands that really rock old school. Next, he hears thefirst song. He doesn't like it, so he skips it. Then, another song, notbad but not quite what he wants. He skips that, too. When the third songplays, it reminds him of early Rush®, which he loves. He didn't realizethis kind of music was still made today. He listens to it and gives it a“thumbs up” vote. As Carlos listens to more music, the service getsbetter and better at helping him find great new rock music, and Carlosbecomes very loyal to his WMMS personal radio service. Other musicservices like satellite radio just play too much stuff he doesn't like,require constant channel flipping to find good music (usually halfwayover when you do find it), and even if other personalized services areavailable, his WMMS personal radio service already knows his taste.

Although the specific example embodiment has been described with regardto a portable communication device having connectivity through awireless communication network and the internet, other embodiments allowalternative client devices to store compilation data and content.Specifically, the customized content also may be delivered to a personalcomputer, home entertainment system, clock radio, or automobile audiosystem. Depending on the user device, connectivity may be achieved invarious ways, such as wired, local-area wireless, and wide-area wirelessconnections. Content may be downloaded from personal computers, homemedia servers, tabletop media players, and/or from another user's clientdevice. In addition, in some embodiments, the functions of theapplication server 108, content server 104, and/or client module 104 maybe performed by the user's computer, home entertainment system, orautomobile audio system. Alternately, in some embodiments, the userdevice may simply act as a media player and the bulk the other functionsof the client 102 be performed by a remote computer (e.g., the server).While the invention has been described in the context of providing audiocontent, the invention is equally applicable for providing audio-videocontent to thereby provide a customized programmed televisionexperience. In addition, some content may supplied by a user (e.g., usergenerated content) to the server to be included in content to bepresented to other users.

It is to be understood that the foregoing illustrative embodiments havebeen provided merely for the purpose of explanation and are in no way tobe construed as limiting of the invention. Words used herein are wordsof description and illustration, rather than words of limitation. Inaddition, the advantages and objectives described herein may not berealized by each and every embodiment practicing the present invention.Further, although the invention has been described herein with referenceto particular structure, materials and/or embodiments, the invention isnot intended to be limited to the particulars disclosed herein. Rather,the invention extends to all functionally equivalent structures, methodsand uses, such as are within the scope of the appended claims. Thoseskilled in the art, having the benefit of the teachings of thisspecification, may affect numerous modifications thereto and changes maybe made without departing from the scope and spirit of the invention.

What is claimed is:
 1. A method comprising: determining a status of whether specific content elements are already stored on a user device; maintaining an inventory of the status of whether specific content elements are already stored on the user device; using the inventory to modify any of a plurality of templates used to generate a plurality of programs for presentation of content elements to a user of the user device, the inventory enabling a reduction of resources needed to transmit selections of content elements included in each of the plurality of programs, each program of the plurality of programs having a different associated template, each template being associated with a user and modifiable based on explicit or implicit user preferences; generating compilation data representing a set of content elements to be presented to the user of the user device as part of a program generated from a corresponding modifiable template, the compilation data defining a specific set of content elements and specific content sequencing and timing for presentation of the program to the user of the user device; transmitting compilation data representing content elements to be presented to the user of the user device; and transmitting to the user device only those content elements not already present on the user device.
 2. The method of claim 1, wherein the determining a status of whether specific content elements are already stored on a user device is performed by a server.
 3. The method of claim 1, wherein the determining a status of whether specific content elements are already stored on a user device is performed by the user device.
 4. The method of claim 1, wherein the content elements not already present on the user device are downloaded to the user device prior to presentation.
 5. The method of claim 1, wherein the content elements not already present on the user device are streamed to the user device as they are presented to the user.
 6. The method of claim 1, wherein the content elements stored on the user device are owned by the user of the user device.
 7. The method of claim 1, including modifying a sequence of presentation of content elements based on which content elements are already stored on the user device.
 8. The method of claim 1, including modifying a frequency of reuse in the presentation of content elements based on which content elements are already stored on the user device.
 9. A system comprising: a server computer communicatively coupled to a data network; and a program processor, executable by the server computer, to: determine a status of whether specific content elements are already stored on a user device; maintain an inventory of the status of whether specific content elements are already stored on the user device; use the inventory to modify any of a plurality of templates used to generate a plurality of programs for presentation of content elements to a user of the user device, the inventory enabling a reduction of resources needed to transmit selections of content elements included in each of the plurality of programs, each program of the plurality of programs having a different associated template, each template being associated with a user and modifiable based on explicit or implicit user preferences; generate compilation data representing a set of content elements to be presented to the user of the user device as part of a program generated from a corresponding modifiable template, the compilation data defining a specific set of content elements and specific content sequencing and timing for presentation of the program to the user of the user device; transmit compilation data representing content elements to be presented to the user of the user device; and transmit to the user device only those content elements not already present on the user device.
 10. The system of claim 9, being further configured to monitor a status of whether specific content elements are already stored on a user device.
 11. The system of claim 9, wherein the content elements not already present on the user device are downloaded to the user device prior to presentation.
 12. The system of claim 9, wherein the content elements not already present on the user device are streamed to the user device as they are presented to the user of the user device.
 13. The system of claim 9, wherein the content elements stored on the user device are owned by the user of the user device.
 14. The system of claim 9, wherein the server computer being further configured to modify a sequence of presentation of content elements based on which content elements are already stored on the user device.
 15. The system of claim 9, wherein the server computer being further configured to modify a frequency of reuse in the presentation of content elements based on which content elements are already stored on the user device.
 16. The system of claim 9, wherein the server computer being further configured to coordinate and prioritize content element delivery across multiple nearby users based on relative urgency.
 17. The system of claim 9, wherein the server computer being further configured to provide user controls to modify a mix of content element categories in the presentation of content elements on the user device.
 18. The system of claim 9, wherein the server computer being further configured to enable sharing of digital rights in the content elements among multiple users.
 19. The system of claim 9, wherein the server computer being further configured to enable a user to select radio and television content as a means of providing input into a process of selecting content for presentation.
 20. The system of claim 9, wherein the server computer being further configured to enable the user of the user device to jump to a particular content element for presentation.
 21. The system of claim 9, wherein the server computer being further configured to use metadata to specify a mix of content elements for presentation. 